/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.orientesalud.dao;

import cl.orientesalud.bd.ConectaBD;
import cl.orientesalud.dominio.Paciente;
import cl.orientesalud.util.OrienteLog;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.log4j.Logger;

/**
 *
 * @author nicolas
 */
public class Dao {
    protected ConectaBD conexion;
     Logger logger=OrienteLog.obtenerLogger(Dao.class);
     public Dao(){
        try {
            this.conexion=ConectaBD.getInstance();
        } catch (ClassNotFoundException ex) {
            logger.error("Error:"+ex.getMessage());
        } catch (InstantiationException ex) {
            logger.error("Error:"+ex.getMessage());
        } catch (IllegalAccessException ex) {
            logger.error("Error:"+ex.getMessage());
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
        }
     }
     
     public void commit(){
        try {
            this.conexion.commit();
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
        }
     }
     
     public void rollback(){
        try {
            this.conexion.rollback();
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
        }
     }
     
     public Integer obtenerValorActualSeq(String nombreSecuencia) throws Exception{
         logger.debug("obteniendo valor actual de secuencia:"+nombreSecuencia);
       Integer retorno=null;
       PreparedStatement pstmt=null;
       ResultSet rs=null;
       String consulta="SELECT currval(?)";
       logger.debug("consulta:"+consulta);
        try {
            pstmt = conexion.preparedStatement(consulta);
            pstmt.setString(1, nombreSecuencia);
            rs=pstmt.executeQuery();
            if(rs.next()){
                retorno=new Integer(rs.getInt(1));
                
                
            }
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
            throw new Exception("Error en el sistema");
        }
       return retorno;
     }
}
